Extensible Markup Language (XML) is a common data language employed for various applications such as website development and other applications typically designed for the Internet. Generally, XML is considered a markup language for documents containing structured information. Structured information includes both content (words, pictures, and so forth) and some indication of what role that content plays (for example, content in a section heading has a different meaning from content in a footnote, which means something different than content in a figure caption or content in a database table, and so forth). Almost all documents have some structure. Thus, a markup language such as XML provides a mechanism to identify structures in a document, where the XML specification defines a standard way to add markup to documents. Another aspect of XML is referred to as XSD which is an XML based language that defines validation rules for XML files, where XSD can be employed for XML Schema Definition. Generally, XSD is an XML based language which implies that XSD statements are written in XML files. One important function of XSD is that it defines validation rules for XML files, meaning that XSD can be utilized to replace Document Type Definitions (DTD), which is another language for defining XML validation rules.
Since the structure of XML files and XSD definitions is defined by textual data and statements, tools for manipulating such languages have not developed along a similar path such as traditional code-based models for developing source code for example. For instance, code-based models typically operate with object classes where tools have developed over time to create desired software functionality. Although XML and XSD type declarations may have some similarity to previous code-based models and class structures, the differences with code-based models are such that XML/XSD tools over the last several years have developed according to a different path offering different types of functionality than code-based tools.
In one case, W3C XML is a general-purpose markup language used to encode data in a structured, human-readable format that can be understood & authored by both people and computers. By itself, XML imposes no predefined structure—the structure of the data is left to the producer and consumer to agree on. In another case, XML Schema is an XML language that can be used to describe those XML structures and the constraints on respective contents in a formal way, so that producers and consumers can have an explicit, well-defined metadata contract for data exchange. Since this formal description (e.g., metadata) is itself XML, it can be produced, consumed & manipulated with the same APIs and tools that are used for the XML the metadata describes.
In another aspect, XML Schema is a complex language with many details and nuances. While many developers are familiar with the use of XML to encode data, far fewer of them are familiar with the syntax and use of XML Schema to describe the metadata. Also, some tend to think in terms of the structure of the data that the schema is describing, yet they are required to express this structure using the XML Schema language which has a different and only loosely related structure. Existing Graphical User Interface (GUI) tools for working with XML Schema files typically provide a direct graphical representation of the contents of the XML Schema, not the structure of the XML data it describes. Since many developers tend to think in terms of their own data, not the minutia of the XML schema language, this makes the XML schema difficult to understand and produce.